A storage system including a plurality of storage devices of different access speeds has recently been developed. In this storage system, a storage controller provides, based on the storage areas of the storage devices, a logical disk including a virtualized storage area to a host computer (host) that uses the storage system. The logical disk is also called a logical volume or logical unit.
The storage areas (physical storage areas) of the storage devices are divided into particular unit areas for management. These particular unit areas are generally called physical extents. The storage controller allocates, to the logical disk, a certain number of arbitrary physical extents in the storage devices, which corresponds to the size of the logical disk. The storage controller thus constructs the logical disk. An area in the logical disk, to which a physical extent is allocated, is called a logical extent.
Assume here that the above-mentioned storage system includes first and second storage devices. Assume also that the first storage device is a high-speed storage device of faster access, such as a solid-state drive (SSD). In contrast, the second storage device is assumed to be a low-speed storage device, such as a hard disk drive (HDD), which has a lower access speed than the first storage device.
The storage controller discriminates the first and second storage devices based on the difference in access speed, and combines the physical extents in the first and sector storage devices in a tiered manner. This operation is called storage tiering, and the storage system, to which the storage tiering is applied, is called a tiered storage system. In the description below, the first and second storage devices will be referred to as a high-speed storage device and a low-speed storage device, respectively.
In the tiered storage system, the storage controller supervises the situation of access to each logical extent. The storage controller generally uses an access (input/output) statistic as an index indicating the access situation. The access statistic is expressed by, for example, the number of accesses to each logical extent (namely, the number of inputs/outputs for read/write).
Based on the access statistics of logical extents, the storage controller dynamically changes allocation of physical extents to the logical extents. That is, if a physical extent in the low-speed storage device is allocated to a logical extent of a high access frequency, the storage controller re-allocates a physical extent in the high-speed storage device to the logical extent of the high access frequency. Similarly, if a physical extent in the high-speed storage device is allocated to a logical extent of a low access frequency, the storage controller re-allocates a physical extent in the low-speed storage device to the logical extent of the low access frequency.
Thus, based on the access statistics of respective logical extents, the storage controller dynamically relocates the data of physical extents of an upper tier to physical extents of a lower tier, and the data of physical extents of the lower tier to physical extents of the higher tier. By this relocation (reallocation), the storage controller can achieve optimization of performance of the logical disk, using limited storage resources.
There are some conventional techniques of effectively utilizing the limited storage capacity of the storage system. As one of them, a deduplication technique is now attracting attention. In this deduplication technique, data items of the same content are prevented from being stored in the storage system in a duplication manner. Duplication of data is generally determined small area (called a chunk) by small area, for example. In general, the size of the chunk is smaller than that of an extent (extent size).
In recent years, application of the deduplication has also come to be requested in the above-described tiered storage system. In the conventional storage systems that employ the deduplication technique, deduplication is generally executed chunk by chunk that is smaller than an extent. Therefore, in order to execute deduplication in a tiered storage system, it is preferable to acquire the access statistic of each logical chunk in the logical disk, instead of the access statistic of each logical extent.
When the deduplication technique is employed, it is strongly possible that the data of a particular chunk (physical chunk) in the high-speed or low-speed storage device is used as the data of a plurality of chunks (logical chunks) in the logical disk. In this case, even if the access statistic of each logical chunk in the logical disk is acquired, it does not necessarily indicate the access statistic of a corresponding physical chunk. Therefore, even if the data of the physical chunks is relocated based on the access statistics of the logical chunks, the relocation does not necessarily reflect the situation of access to the physical chunks. Accordingly, it is difficult to optimize the performance of the logical disk.